package hospital;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

class Banco {
	Connection MinhaConexao;

	public void Conectar() {
		try {
			// declaração de um url que será a ponte jdbc-odbc com o banco de
			// MeuBanco
			// Alterado por Neto - String url = "jdbc:mysql://localhost/Hospital";
            String url = "jdbc:jtds:sqlserver://localhost/aline";
			// carrega um jdbc-odbc driver
			// Alterado por Neto - Class.forName("com.mysql.jdbc.Driver");
            Class.forName("net.sourceforge.jtds.jdbc.Driver");
			
			MinhaConexao = DriverManager.getConnection(url, "sa", "freire");
		} catch (ClassNotFoundException ex) {
			// System.out.println("Driver JDBC-MySQL não encontrado! \n"
            System.out.println("Driver JDBC-SQLServer não encontrado! \n"
					+ ex.getMessage());
		} catch (SQLException ex) {
			System.out.println("Problemas na conexao com a fonte de dados \n"
					+ ex.getMessage());
		}
	}

	public void Desconectar() {
		try {
			MinhaConexao.close();
			return;
		} catch (SQLException ex) {
			Logger.getLogger(Banco.class.getName()).log(Level.SEVERE, null, ex);
		}
	}

	public String[] ConsultaView() {
		// String de retorno, caso n�o haja exito na consulta, retorna nulo, ou
		// uma mensagem que voce queira
		String retorno[] = null;
		try {
			Conectar();

			// cria e executa uma instrução SQL
			Statement MeuState = MinhaConexao
					.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
							ResultSet.CONCUR_READ_ONLY);
			// Mostra o resultado da instrução SQL na tela
			// Alterado por Neto - ResultSet rs = MeuState.executeQuery("Vw_consulta");
			ResultSet rs = MeuState.executeQuery("select * from Vw_consulta");
			// Alterado por Neto
			System.out.printf("Paciente\tMedico        \tEspecialidade \tData\n");
			System.out.printf("--------\t--------------\t------------- \t----\n");

			//Caso haja exito na consulta
			if (rs.next()){
				//neste trecho conto quantas linha teve na consulta
				int contLinhas = 0;

                while (rs.next()) {
					contLinhas ++;				
				}
				
				rs.first();

				//inicia o vetor de String de retorno
				retorno = new String[contLinhas];
				
				contLinhas = 0;
				while (rs.next()) {
                    // Alterado por Neto
					String codigo = rs.getString("Paciente");
					String nome = rs.getString("Medico");
					retorno[contLinhas] = codigo + " \t " + nome;
                    System.out.println( retorno[contLinhas] );
				}
				
			}
			
			// Fecha a Conexão
			
			Desconectar();
		} catch (SQLException ex) {
			System.out.println("Problemas na conexao com a fonte de dados \n"
					+ ex.getMessage());
		} catch (Exception ex) {
			System.out.println("Erro  \n" + ex.getMessage());
		}
		return retorno;
	}
}
